// 题目描述x
//
// 小美在玩游戏,游戏中有n个怪物,怪物的血量为hi,攻击力为ai。小美的血量为H,攻击力为A,小美可以击败血量和攻击力都小于自己的怪
// 物,并且打败后血量降为怪物的血量,攻击力降为怪物的攻击力。小美想知道最多可以打败多少怪物。
//
// 输入描述:
//
// 第一行三个整数 n,H,A,分别表示怪物的数量,小美的血量,小美的攻击力。
// 第二行 n 个整数hi,表示怪物的血量。
// 第三行 n 个整数 ai,表示怪物的攻击力。
// 1<n<103
// 1 ≤ ai, hi, H,A ≤109
//
// 输出描述:
//
// 输出一个整数表示答案。
//
// 示例
//
// 输入
// 3 4 5
// 1 2 3
// 3 2 1
// 输出
// 1
//____________________________________________________________
// #include <stdio.h>
// #include <stdlib.h>
//
// // 怪物结构体
// typedef struct {
//     int health;
//     int attack;
// }Monster;
//
// // 比较函数，用于排序
// int compare(const void *a, const void *b) {
//     Monster *monsterA = (Monster *)a;
//     Monster *monsterB = (Monster *)b;
//     if (monsterA->health == monsterB->health) {
//         return monsterA->attack - monsterB->attack;
//     }
//     return monsterA->health - monsterB->health;
// }
//
// int main() {
//     int n, H, A;
//     scanf("%d %d %d", &n, &H, &A);
//
//     Monster monsters[n];
//     for (int i = 0; i < n; i++) {
//         scanf("%d", &monsters[i].health);
//     }
//     for (int i = 0; i < n; i++) {
//         scanf("%d", &monsters[i].attack);
//     }
//
//     // 按血量升序排序，若血量相等按攻击力升序
//     qsort(monsters, n, sizeof(Monster), compare);
//
//     int count = 0; // 击败怪物数
//
//     for (int i = 0; i < n; i++) {
//         if (H > monsters[i].health && A > monsters[i].attack) {
//             // 击败怪物，更新属性
//             H = monsters[i].health;
//             A = monsters[i].attack;
//             count++;
//         }
//     }
//
//     printf("%d\n", count);
//     return 0;
// }
